package com.cheng.im.service.group.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cheng.im.service.common.model.SyncReq;
import com.cheng.im.service.common.model.SyncResp;
import com.cheng.im.service.common.resp.CommonResult;
import com.cheng.im.service.group.domain.ImGroup;
import com.cheng.im.service.group.model.req.*;
import com.cheng.im.service.group.model.resp.GetGroupResp;

/**
* @author Cheng
* @description 针对表【im_group】的数据库操作Service
* @createDate 2024-12-19 09:16:10
*/
public interface ImGroupService extends IService<ImGroup> {

    public CommonResult importGroup(ImportGroupReq req);

    public CommonResult createGroup(CreateGroupReq req);

    public CommonResult updateBaseGroupInfo(UpdateGroupReq req);

    public CommonResult getJoinedGroup(GetJoinedGroupReq req);

    public CommonResult destroyGroup(DestroyGroupReq req);

    public CommonResult transferGroup(TransferGroupReq req);

    public CommonResult<ImGroup> getGroup(String groupId, String appId);

    public CommonResult<GetGroupResp> getGroup(GetGroupReq req);

    public CommonResult muteGroup(MuteGroupReq req);

    CommonResult<SyncResp<ImGroup>> syncJoinedGroupList(SyncReq req);

    Long getUserGroupMaxSeq(String userId, String appId);
}
